Physical information management system (IMS) databases are hierarchical, non-relational databases. Each database has a schema defined as a hierarchy or tree of segment types, each of which is defined, in turn, as a collection of fields. This definition of a physical database schema is contained in an IMS control block called a database description (DBD). One or more optional secondary indexes may also be defined for an IMS hierarchical database each of which is defined with their own unique DBD control blocks. Online catalogues in the prior art capture available information from the primary database DBD but otherwise ignore all other related DBDs associated with defined secondary indexes. Consequently, this secondary index metadata is only available in assembler language macro format, or as compiled object code, and thus the IMS has no online catalogue capability pertaining to secondary indexes.
Users operating IMS databases may wish to query and manipulate the data contained in the database. Current methods for accessing and manipulating the data in databases often use an application programming interface (API) written in Java®, such as JDBC® (Java® DataBase Connectivity). JDBC® is a programming interface that lets Java® applications access a database via the SQL language.
Since Java® interpreters (Java® Virtual Machines) are available for major client platforms, this allows a platform-independent database application to be written. However, JDBC® cannot be used with prior art IMS to access a database using a secondary index because the prior art online catalogue cannot accommodate secondary indexes. The catalogue defines all the attributes of the segments, fields and their inter-relationships. Segments and fields in a hierarchical database are analogous to tables and columns within relational databases. A catalogue is online if it can be accessed dynamically (during execution of the application) at runtime.
A database with an online catalogue will access the online catalogue and perform maintenance functions when data is retrieved or stored. Such maintenance functions include strong type checking which ensures type consistency and eliminates type conflict. JDBC® also requires strong type checking. Consequently, JDBC® cannot be used with IMS databases when access to the data is through a secondary index to achieve enhanced performance. Therefore, in the prior art, applications requiring dynamic access to IMS metadata must forego the use of secondary indexes and incur significant performance penalties.
What is therefore needed is an online catalogue that can be introduced in an IMS setting, or in any other hierarchical database setting that has no online catalogue, to facilitate the use of secondary indexes for accessing the data in a more efficient manner. The need for such a system has heretofore remained unsatisfied.